The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventor(s), to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
As computing paradigms shift, difficulties with traditional solutions begin to arise. Consider that as computing shifts to cloud-based solutions, a user's experience is more sensitive to communication latency. Communication latency becomes more important because the user's experience is more closely tied to information transmitted between a local system and the cloud.
Communication latency can depend on many different factors including bandwidth, network congestion, processing bottlenecks, and so on. While solutions to some difficulties (e.g., bandwidth) may be simple (e.g., increase bandwidth), solutions to others (e.g., processing bottlenecks) are not. For example, when a local system is sending and receiving network communications, the local system buffers and processes each network packet using a processor of the local system. However, the processor is typically a general purpose CPU that is not optimized for processing network packets. Accordingly, bottlenecks may occur at the processor, which may cause increased latencies. For example, traditionally, in a software implemented linked list, a processor sequentially traced pointers along the linked list until, for example, reaching a pointer for a requested portion of data. However, tracing the linked this using a processor in this way results in a multiplicity of read operations to the linked list in memory that cause a bottleneck with memory access requests.